package cn.com.cfae.iras.doc.analyze.parse.model.table;

import cn.com.cfae.iras.doc.analyze.parse.extractor.MTableExtractor;
import cn.com.cfae.iras.doc.analyze.parse.extractor.TableExtractor;
import cn.com.cfae.iras.doc.analyze.parse.model.ExtractBizModel;
import cn.com.cfae.iras.doc.analyze.parse.model.TableType;

import java.util.List;
import java.util.Map;

public abstract class BaseTable {

    protected static String SYNONYM_SPLIT_CHAR = "\\|";

    public BaseTable(TableType tableType) {
        this.tableType = tableType;
    }

    public TableType getTableType() {
        return tableType;
    }

    public void setTableType(TableType tableType) {
        this.tableType = tableType;
    }

    TableType tableType;

    public List<TableItem> getTableItemList() {
        return tableItemList;
    }

    public void setTableItemList(List<TableItem> tableItemList) {
        this.tableItemList = tableItemList;
    }

    private List<TableItem> tableItemList;

    public abstract Map<String, Class<? extends MTableExtractor>> createMTableExtractors();

    public abstract Map<String, ExtractBizModel> getExtractBizModelMap(String tableId);

    public abstract void initTable();

    public abstract List<String> getSynonyms();
    public abstract List<String> getFilters();


}
